﻿Imports System
Imports System.Collections.Generic
Imports System.Workflow.ComponentModel

Namespace System.Workflow.Runtime.Tracking
    Public NotInheritable Class TrackingParameters
        ' Methods
        Private Sub New()
            Me._instanceId = Guid.Empty
            Me._callerInstanceId = Guid.Empty
            Me._contextGuid = Guid.Empty
            Me._callerContextGuid = Guid.Empty
            Me._callerParentContextGuid = Guid.Empty
        End Sub

        Public Sub New(ByVal instanceId As Guid, ByVal workflowType As Type, ByVal rootActivity As Activity, ByVal callPath As IList([Of] String), ByVal callerInstanceId As Guid, ByVal contextGuid As Guid, ByVal callerContextGuid As Guid, ByVal callerParentContextGuid As Guid)
            Me._instanceId = Guid.Empty
            Me._callerInstanceId = Guid.Empty
            Me._contextGuid = Guid.Empty
            Me._callerContextGuid = Guid.Empty
            Me._callerParentContextGuid = Guid.Empty
            Me._instanceId = instanceId
            Me._workflowType = workflowType
            Me._activityCallPath = callPath
            Me._callerInstanceId = callerInstanceId
            Me._contextGuid = contextGuid
            Me._callerContextGuid = callerContextGuid
            Me._callerParentContextGuid = callerParentContextGuid
            Me._rootActivity = rootActivity
        End Sub


        ' Properties
        Public ReadOnly Property CallerContextGuid As Guid
            Get
                Return Me._callerContextGuid
            End Get
        End Property

        Public ReadOnly Property CallerInstanceId As Guid
            Get
                Return Me._callerInstanceId
            End Get
        End Property

        Public ReadOnly Property CallerParentContextGuid As Guid
            Get
                Return Me._callerParentContextGuid
            End Get
        End Property

        Public ReadOnly Property CallPath As IList([Of] String)
            Get
                Return Me._activityCallPath
            End Get
        End Property

        Public ReadOnly Property ContextGuid As Guid
            Get
                Return Me._contextGuid
            End Get
        End Property

        Public ReadOnly Property InstanceId As Guid
            Get
                Return Me._instanceId
            End Get
        End Property

        Public ReadOnly Property RootActivity As Activity
            Get
                Return Me._rootActivity
            End Get
        End Property

        Public ReadOnly Property WorkflowType As Type
            Get
                Return Me._workflowType
            End Get
        End Property


        ' Fields
        Private _activityCallPath As IList([Of] String)
        Private _callerContextGuid As Guid
        Private _callerInstanceId As Guid
        Private _callerParentContextGuid As Guid
        Private _contextGuid As Guid
        Private _instanceId As Guid
        Private _rootActivity As Activity
        Private _workflowType As Type
    End Class
End Namespace

